package com.mrd.frame.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.mrd.frame.domain.TradeStatement;
import com.mrd.frame.domain.params.ReconciliationParams;

public interface TradeStatementDao {
	/**
	 * 根据id删除
	 * @param tradingStatementsId
	 * @return 数据库受影响的条数
	 */
    int deleteByPrimaryKey(String tradingStatementsId);
    /**
   	 * 新增一条数据(id自动生成)
   	 * @param TradeStatement
   	 * @return 数据库受影响的条数
   	 */
    int insert(TradeStatement record);
    /**
	 * 新增一条数据（id自动生成，null值不插入）
	 * @param TradeStatement
	 * @return 数据库受影响的条数
	 */
    int insertSelective(TradeStatement record);
    /**
	 * 根据id查询
	 * @param tradingStatementsId
	 * @return TradeStatement
	 */
    TradeStatement selectByPrimaryKey(String tradingStatementsId);
    /**
	 * 更新数据（更新对象中的非null属性）
	 * @param TradeStatement
	 * @return 数据库受影响的条数
	 */
    int updateByPrimaryKeySelective(TradeStatement record);
    /**
	 * 更新数据（除id外全部属性更新）
	 * @param TradeStatement
	 * @return 数据库受影响的条数
	 */
    int updateByPrimaryKey(TradeStatement record);
    /**
     * 根据对账参数查询（日期区间null则默认查24小时）
     */
    List<TradeStatement> selectInPeriod(@Param("userKey")String userKey,@Param("fromDate")Date fromDate, @Param("toDate")Date toDate);
    
    /**
     * 根据商户订单号获取账单
     */
    List<TradeStatement> selectByTradeNo(@Param("tradeNo")String tradeNo, @Param("userKey")String userKey);
    
    /**
     * 根据非空属性查询
     */
    List<TradeStatement> selectSelective(TradeStatement record);
}